/**
https://leetcode.cn/problems/jump-game/description/
55. 跳跃游戏
 Medium, 方钊堉 2024.12.07
 BFS
 */

class Solution {
public:
    bool canJump(vector<int>& nums) {
        //遍历指针 i，数组长度 len
        int i=0,len=nums.size();
        //最远距离
        int go=0;
        for(i=0;i<len;i++)
        {
            //当go大于数组长度（len）时，判断为true
            if(go>=len) return true;
            //当i==go但是nums[i]=0时，无法再到达下一点了，判断为false
            if(i!=len-1&&i==go&&!nums[i]) return false;
            //更新go值
            go=max(go,i+nums[i]);
        }
        return true;
    }
};

